# 这个文件是工具文件，一些全局可能用到的工具函数放这边
from threading import Thread

# 线程间的运行状态控制变量
global_dict = {}

def set_global_value(name, value):
  global_dict[name] = value

def get_global_value(name, defValue=None):
  try:
      return global_dict[name]
  except KeyError:
      return defValue

# 新启线程的高阶函数
def thread_run(f):
  def wrapper(*args, **kwargs):
      thr = Thread(target = f, args = args, kwargs = kwargs)
      thr.start()
  return wrapper

def async_run(coro):
  try:
    coro.send(None)
  except StopIteration as e:
    return e.value


# 延时，咱用不到
def delayMicrosecond(t):    # 微秒级延时函数
  start,end=0,0           # 声明变量
  start=time.time()       # 记录开始时间
  t=(t-3)/1000000     # 将输入t的单位转换为秒，-3是时间补偿
  while end-start<t:  # 循环至时间差值大于或等于设定值时
    end=time.time()     # 记录结束时间